package com.ustze.ocr.domain.vo;


import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author zongun
 * @TableName biz_work_surface
 * @date 2024/01/25
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class WorkSurface implements Serializable {
    /**
     *
     */
    private Long id;

    /**
     * 租户id
     */
    private String tenantId;


    /**
     * 父级id
     */
    private Long parentId;

    /**
     * 工作面类型（1-回采面 0-掘进面）
     *
     * @see org.dromara.monitor.enums.WorkSurfaceType
     */
    private Integer workSurfaceType;

    /**
     * 煤矿编号
     */
    private String coalmineNum;

    /**
     * 工作面编号
     */
    private String workSurfaceNum;

    /**
     * 工作面名称
     */
    private String workSurfaceName;


    /**
     * 工作面显示类型
     * @see org.dromara.monitor.enums.ShowType
     * 掘进 1 掘进  2开拓巷道（水平大巷），6准备巷道（采区大巷）  4 回采工作面顺槽（1改4）
     *
     * 回采 3 回采 回采工作面（切眼）
     */
    private Integer showType;

    /**
     * 工作面类型（L水平 M采区 F工作面 T 巷道）
     */
    private String faceType;

    /**
     * 使用标识（0 准备 1-在用 2-停用）
     *
     * 掘进工作面状态是 0在掘、1在用、2停用
     * 回采工作面状态是  1在采 2停采
     *
     * @see
     */
    private Integer useFlag;

    /**
     * 巷道高度
     */
    private Double tunnelHeight;

    /**
     * 巷道宽度
     */
    private Double tunnelWidth;
    /**
     * 巷道长度
     */
    private Double tunnelLength;
    /**
     * 巷道形状（1:拱形、2:梯形、3:矩形）
     */
    private Integer tunnelShape;
    /**
     * 巷道围岩属性（1:岩巷、2:煤巷、3:半煤岩巷）
     */
    private Integer roadwayType;

    /**
     * 推进度录入周期 1 一天三班 2 一天四班
     */
    private Integer fixedShift;

    /**
     * 走向长
     */
    private Double length;

    /**
     * 倾向长
     */
    private Double width;


    /**
     * 采高
     */
    private Double gatherCoalHeight;
    /**
     * 煤层厚度
     */
    private Double thickness;

    /**
     * 煤层倾角
     */
    private Double dipAngle;

    /**
     * 平均埋深
     */
    private Double depth;

    /**
     * 采煤方法
     */
    private String miningWay;




    /**
     * 掘进工作面切换到回采工作面日期  工作面回采日期
     */
    private LocalDate switchDate;

    /**
     * 留巷日期
     */
    private LocalDate retainDate;

    /**
     * 初次来压步距
     */
    private Double firstWeightStepDistance;

    /**
     * 周期来压步距
     */
    private Double perWeightStepDistance;

    /**
     * 工作面开采时间
     */
    private LocalDate beginDate;

    /**
     * 工作面停采时间
     */
    private LocalDate endDate;

    /**
     * 停采线距开切眼距离
     */
    private Double endPosition;

    /**
     * 创建时间
     */
    private LocalDateTime createDate;


    /**
     * 超前扰动范围
     */
    private Double advanceDisturbanceRange;

    /**
     * 显示顺序
     */
    private Integer orderNum;

    /**
     * 祖级列表
     */
    private String ancestors;
    /**
     * 所在位置
     */
    private String address;

    /**
     * 管理员id
     */
    private List<Long> managerId;

    /**
     * 区队id
     */
    private List<Long> districtTeamId;

    /**
     * 管理员id
     */
    private String managerName;


    /**
     * 区队id
     */
    private String districtTeamName;
    /**
     * 采煤工艺 1  综放 2 综采
     * 回采
     */
    private Integer mineTech;



    /**
     * 是否特殊危险  0 无 1 有
     * 回采掘进
     */
    private Integer specialDanger;


    /**
     * 是否应力集中  0 否 1 是  是否在其他应力集中区域掘进
     * 回采掘进
     */
    private Integer stressCenter;

    /**
     * 是否需要爆破作业  0 否 1 是
     * 回采掘进
     */
    private Integer blast;

    /**
     * 是否临近断层、裂隙带、陷落等地质构造 0 否 1 是
     * 12	特殊地质构造专项措施
     * 回采
     */
    private Integer faultGeology;


    /**
     * 是否过老巷 0 否 1 是
     * 掘进
     */
    private Integer passOldTunnel;

    /**
     * 是否掘进16°以上倾斜巷道 0 否 1 是
     * 掘进
     */
    private Integer dipAngleTooLarge;
    /**
     * 归属工作面id
     */
    private Long belongWorkSurfaceId;




    private static final long serialVersionUID = 1L;

    public WorkSurface(Long id, Long parentId, String workSurfaceName, String faceType) {
        this.id = id;
        this.parentId = parentId;
        this.workSurfaceName = workSurfaceName;
        this.faceType = faceType;
    }
}
